💯 solving-algo | March 29, 2021
0과 1로 이루어진 얼음판에서 인접 노드끼리(상, 하, 좌, 우) 0으로 처리되어 있는 것은 하나의 얼음판으로 보고 count를 해 총 몇개의 얼음판이 있는지 세는 문제이다.
n, m = map(int, input().split())
arr = []
for _ in range(n):
arr.append(list(map(int, input())))
def dfs(x, y):
if x <= -1 or x >= n or y <= -1 or y >= m:
return False
if arr[x][y] == 0:
arr[x][y] = 1
dfs(x, y + 1)
dfs(x, y - 1)
dfs(x + 1, y)
dfs(x - 1, y)
return True
return False
result = 0
for i in range(n):
for j in range(m):
if dfs(i, j) == True:
result += 1
print(result)